Przejdź do głównej zawartości

Automatyzacja zadań (jobs) w CGC SDK

CGC SDK umożliwia użytkownikom budowanie potoków oraz włączanie logiki do zarządzania zadaniami.

Informacja

Do połączenia z platformą wymagany jest ważny kontekst, a uprawnienia telemetryczne muszą być ustawione, aby uniknąć przerwania procesu.

Podstawowe Zastosowanie​

Tworzenie i usuwanie zadań można zrealizować w następujący sposób:

Tworzenie zadania​

Proste tworzenie zadania:

import cgc.sdk as cgc
# Tworzenie zadania
response_created = cgc.job.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="NVIDIA-A100-SXM4-80GB")

Tworzenie zadania z zamontowanym wolumenem na określonej ścieżce:

import cgc.sdk as cgc
# Tworzenie zadania z zamontowanym woluminem
response_created = cgc.job.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="NVIDIA-A100-SXM4-80GB", volumes=["dane-treningowe"], volume_full_path="/tmp/dane")

Dane zostaną zamontowane w katalogu /tmp/dane.

Jeśli chcesz użyć wielu wolumenów dla zadania, możesz przekazać listę wolumenów:

Informacja

Wolumeny zostaną zamontowane w: /usr/'nazwa_wolumenu'

import cgc.sdk as cgc
# Tworzenie zadania z wieloma zamontowanymi wolumenami
response_created = cgc.job.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="NVIDIA-A100-SXM4-80GB", volumes=["wol-1", "wol-2"])

Jeśli nie musisz monitorować statusu zadania, możesz ustawić parametr ttl_seconds_after_finished, aby automatycznie usunąć zadanie po określonym czasie:

import cgc.sdk as cgc
# Tworzenie zadania z TTL
response_created = cgc.job.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="NVIDIA-A100-SXM4-80GB", ttl_seconds_after_finished=3600)

Argumenty funkcji​

Nazwa argumentuWartośćDomyślnieOpisWymagane
namestringBrakNazwa zadania*
image_namestringBrakNazwa obrazu z repozytorium publicznego lub prywatnego*
repository_secretstringBrakNazwa sekretu zapewnionego przez zespół CGC dla repo prywatnych
cpuint1Liczba vCPU
memoryint [GB]2Ilość pamięci RAM w GB
shm_sizeint [GB]0Rozmiar pamięci współdzielonej wyciętej z pamięci RAM
gpuint0Liczba GPU
gpu_typestring""Typ GPU, nazwa jak w cgc status (np. NVIDIA-RTX-A5000)
volumeslista[]Lista wolumenów do zamontowania
volume_full_pathstringBrakŚcieżka, w której wolumen zostanie zamontowany
startup_commandstringBrakJeśli nie określono w obrazie Docker
cgc_datalista[]Lista parametrów CGC w formacie klucz=wartość
environment_datalista[]Lista zmiennych środowiskowych w formacie klucz=wartość
arguments_datalista[]Lista argumentów przekazywanych do kontenera
config_maps_datalista[]Lista parametrów config map w formacie klucz=wartość
ttl_seconds_after_finishedintBrakCzas życia w sekundach po zakończeniu zadania

active_deadline_seconds jest dostępny tylko w CLI (cgc job create --ads); job_create w SDK nie przyjmuje tego argumentu.

Usuwanie zadania​

import cgc.sdk as cgc

# Usuwanie aplikacji
response_deleted = cgc.job.job_delete("nazwa")

Argumenty funkcji​

Nazwa argumentuWartośćDomyślnieOpisWymagane
namestringBrakNazwa zadania*

Lista uruchomionych i oczekujących zadań​

import cgc.sdk as cgc
# Pobieranie statusu aplikacji
response_list = cgc.job.job_list()